<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    

    // new Promise();
    // new Promise("hello");


    // 状态演示：

    // 返回了一个正在进行时的Promise实例
    // const p1 = new Promise(()=>{});
    // console.log(p1);
    
    // 返回一个完成（成功）状态的Promise实例
    // const p2 = Promise.resolve("ok");
    // console.log(p2);
    
    // 返回一个未完成（失败）状态的Promise实例
    // const p3 = Promise.reject("no");
    // console.log(p3);

    // ===========

    // console.log(1);

    // 开启承诺
    // const p1 = new Promise(( a, b )=>{
        // 正在进行时(是同步，不是异步)...
        // console.log(2);

        // a()
        // b()

        // 开启一个异步程序，用来决定成功或失败
        // setTimeout(()=>{
        //     // 确定成功
        //     a();
        // }, Math.random() * 1000);
        
        // setTimeout(()=>{
        //     // 确定失败
        //     b();
        // }, Math.random() * 1000);
    // });
    // console.log(p1);
    // console.log(3);

    // 实例的方法
    // then的功能
        // 参数1：用来定义成功时要执行的功能，函数
        // 参数2：用来定义失败时要执行的功能，函数
    // p1.then(()=>{
    //     console.log("hello")
    // }, ()=>{
    //     console.log("world")
    // })
    // document.onclick = function(){
    //     console.log(p1);
    // }


    // ===========

    // const p = new Promise((a, b)=>{
    //     // a()
    //     b();
    // });
    // const res = p.then(()=>{
    //     return "hello";
    // }, ()=>{
    //     return "world";
    // })
    // document.onclick = function(){
    //     console.log(p);
    //     console.log(res);
    // }

    // 利用：then执行结束后会得到一个新的Promise实例，优化回调地狱




    



</script>
</html>